#pragma once
#include <iostream>
#include <string>
#include <unistd.h>
#include <fcntl.h>
#include <cstdlib>
#include <cerrno>
#include <cstring>
#include "Log.hpp"
using namespace std;

// 将一个文件描述符设置成非阻塞
void SetNonBlock(int fd) {
    int f1 = fcntl(fd, F_GETFL);
    if (f1 < 0) {
        lg.LogMessage(Warning, "fcntl error, errno: %d, strerror: %s", errno, strerror(errno));
        return;
    }
    fcntl(fd, F_SETFL, f1 | O_NONBLOCK);
}